/*
 * Copyright (C), 2002-2017, 苏宁易购电子商务有限公司
 * FileName: QueryCouponDetailInfoFromSPESEsbDto
 * Author:   15030469 胡丹
 * Date:     2017/5/2 15:54
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.suning.sawp.dto.exchange;

import java.io.Serializable;
import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * 〈从spes esb 接口中获取券详情的返回报文〉<br>
 *
 * @author 15030469 胡丹
 */
@XStreamAlias("MbfBody")
public class QueryCouponDetailInfoFromSPESEsbDto implements Serializable {
    private static final long serialVersionUID = 5153694795121149336L;

    /**
     * 查询结果
     */
    @XStreamAlias("queryResult")
    private String queryResult;

    /**
     * 失败原因
     */
    @XStreamAlias("failureReasons")
    private String failureReasons;

    /**
     * 券使用规则名称
     */
    @XStreamAlias("couponRulesName")
    private String couponRulesName;

    /**
     * 券使用张数
     */
    @XStreamAlias("couponNum")
    private String couponNum;

    /**
     * 使用场景链接
     */
    @XStreamAlias("useLink")
    private String useLink;

    /**
     * 特殊商品限制
     */
    @XStreamAlias("couponUseRule")
    private String couponUseRule;

    /**
     * 配送方式限制
     */
    @XStreamAlias("couponDelivery")
    private String couponDelivery;

    /**
     * 自提金额限制
     */
    @XStreamAlias("couponMentionAmount")
    private String couponMentionAmount;

    /**
     * 券面值
     */
    @XStreamAlias("couponValue")
    private String couponValue;

    /**
     * 券余额
     */
    @XStreamAlias("remainValue")
    private String remainValue;

    /**
     * 券开始时间
     */
    @XStreamAlias("couponStartTime")
    private String couponStartTime;

    /**
     * 券结束时间
     */
    @XStreamAlias("couponEndTime")
    private String couponEndTime;

    /**
     * 券发起方
     */
    @XStreamAlias("couponInitiator")
    private String couponInitiator;

    /**
     * 店铺编码
     */
    @XStreamAlias("storeId")
    private String storeId;

    /**
     * 券状态
     */
    @XStreamAlias("couponStatus")
    private String couponStatus;

    /**
     * 订单商品数量累计上限
     */
    @XStreamAlias("maxLimit")
    private String maxLimit;

    /**
     * 订单商品数量累计下限
     */
    @XStreamAlias("minLimit")
    private String minLimit;

    /**
     * 券使用规则展示信息
     */
    @XStreamAlias("couponRulesShowMsg")
    private String couponRulesShowMsg;

    /**
     * 券使用规则展示信息
     */
    @XStreamAlias("rewardsPreferential")
    private String rewardsPreferential;

    /**
     * 开始时间
     */
    @XStreamAlias("startTime")
    private String startTime;

    /**
     * 结束时间
     */
    @XStreamAlias("endTime")
    private String endTime;

    /**
     * 券有效期结束时间距离开始时间延迟天数
     */
    @XStreamAlias("dynamicTime")
    private String dynamicTime;

    /**
     * 券有效期开始时间距离当前时间延迟天数
     */
    @XStreamAlias("dynamicDistanceTimeDelay")
    private String dynamicDistanceTimeDelay;

    /**
     * 券类型编码
     */
    @XStreamAlias("couponTypeNumber")
    private String couponTypeNumber;

    /**
     * 不可用营销标识列表
     */
    @XStreamAlias("noMarketNameList")
    private List<NoMarketNameDetail> noMarketNameList;

    @XStreamAlias("noMarketNameDetail")
    public static class NoMarketNameDetail implements Serializable {
        private static final long serialVersionUID = -6766947317653326501L;

        /**
         * 不可用营销标识名称
         */
        @XStreamAlias("noMarketName")
        private String noMarketName;

        public String getNoMarketName() {
            return noMarketName;
        }

        public void setNoMarketName(String noMarketName) {
            this.noMarketName = noMarketName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("NoMarketNameDetail{");
            sb.append(" noMarketName='").append(noMarketName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 不可用营销标识名称
     */
    @XStreamAlias("noBusinessSignList")
    private List<NoBusinessSignDetail> noBusinessSignList;

    @XStreamAlias("noBusinessSignDetail")
    public static class NoBusinessSignDetail implements Serializable {

        private static final long serialVersionUID = -3852704208401473045L;

        /**
         * 不可用业务标识名称
         */
        @XStreamAlias("noBusinessSignName")
        private String noBusinessSignName;

        public String getNoBusinessSignName() {
            return noBusinessSignName;
        }

        public void setNoBusinessSignName(String noBusinessSignName) {
            this.noBusinessSignName = noBusinessSignName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("NoBusinessSignDetail{");
            sb.append(" noBusinessSignName='").append(noBusinessSignName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 奖励排除品类列表
     */
    @XStreamAlias("excludeCategoryList")
    private List<ExcludeCategoryDetail> excludeCategoryList;

    @XStreamAlias("excludeCategoryDetail")
    public static class ExcludeCategoryDetail implements Serializable {
        private static final long serialVersionUID = 7705912725417198604L;

        /**
         * 奖励排除品类名称
         */
        @XStreamAlias("excludeCategoryName")
        private String excludeCategoryName;

        public String getExcludeCategoryName() {
            return excludeCategoryName;
        }

        public void setExcludeCategoryName(String excludeCategoryName) {
            this.excludeCategoryName = excludeCategoryName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("ExcludeCategoryDetail{");
            sb.append(" excludeCategoryName='").append(excludeCategoryName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 券使用规则终端列表
     */
    @XStreamAlias("couponRulesTerminalList")
    private List<CouponRulesTerminalDetail> couponRulesTerminalList;

    @XStreamAlias("couponRulesTerminalDetail")
    public static class CouponRulesTerminalDetail implements Serializable {
        private static final long serialVersionUID = 3571065700120915982L;

        /**
         * 券使用规则终端名称
         */
        @XStreamAlias("couponRulesTerminalName")
        private String couponRulesTerminalName;

        /**
         * 券使用规则子终端列表
         */
        @XStreamAlias("couponRulesTerminalChildList")
        private List<CouponRulesTerminalChildDetail> couponRulesTerminalChildList;

        public String getCouponRulesTerminalName() {
            return couponRulesTerminalName;
        }

        public void setCouponRulesTerminalName(String couponRulesTerminalName) {
            this.couponRulesTerminalName = couponRulesTerminalName;
        }

        public List<CouponRulesTerminalChildDetail> getCouponRulesTerminalChildList() {
            return couponRulesTerminalChildList;
        }

        public void setCouponRulesTerminalChildList(List<CouponRulesTerminalChildDetail> couponRulesTerminalChildList) {
            this.couponRulesTerminalChildList = couponRulesTerminalChildList;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("CouponRulesTerminalDetail{");
            sb.append(" couponRulesTerminalName='").append(couponRulesTerminalName).append('\'');
            sb.append(", couponRulesTerminalChildList=").append(couponRulesTerminalChildList);
            sb.append('}');
            return sb.toString();
        }
    }

    @XStreamAlias("couponRulesTerminalChildDetail")
    public static class CouponRulesTerminalChildDetail implements Serializable {
        private static final long serialVersionUID = -7871967375327281760L;

        /**
         * 券使用规则子终端名称
         */
        @XStreamAlias("couponRulesTerminalChildName")
        private String couponRulesTerminalChildName;

        public String getCouponRulesTerminalChildName() {
            return couponRulesTerminalChildName;
        }

        public void setCouponRulesTerminalChildName(String couponRulesTerminalChildName) {
            this.couponRulesTerminalChildName = couponRulesTerminalChildName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("CouponRulesTerminalChildDetail{");
            sb.append(" couponRulesTerminalChildName='").append(couponRulesTerminalChildName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 城市列表
     */
    @XStreamAlias("cityList")
    private List<CityDetail> cityList;

    @XStreamAlias("cityDetail")
    public static class CityDetail implements Serializable {
        private static final long serialVersionUID = -8591784807820164405L;

        /**
         * 城市名称
         */
        @XStreamAlias("cityName")
        private String cityName;

        public String getCityName() {
            return cityName;
        }

        public void setCityName(String cityName) {
            this.cityName = cityName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("CityDetail{");
            sb.append(" cityName='").append(cityName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 门店列表
     */
    @XStreamAlias("storesList")
    private List<StoresDetail> storesList;

    @XStreamAlias("storesDetail")
    public static class StoresDetail implements Serializable {
        private static final long serialVersionUID = 4001495790294624192L;

        /**
         * 门店名称
         */
        @XStreamAlias("storesName")
        private String storesName;

        public String getStoresName() {
            return storesName;
        }

        public void setStoresName(String storesName) {
            this.storesName = storesName;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("StoresDetail{");
            sb.append(" storesName='").append(storesName).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    /**
     * 商品范围信息列表
     */
    @XStreamAlias("partScopeMsgList")
    private List<PartScopeMsgDetail> partScopeMsgList;

    @XStreamAlias("partScopeMsgDetail")
    public static class PartScopeMsgDetail implements Serializable {
        private static final long serialVersionUID = -8079967451879002354L;

        /**
         * 商家编码
         */
        @XStreamAlias("sellerNumber")
        private String sellerNumber;

        /**
         * 商品名称
         */
        @XStreamAlias("partName")
        private String partName;

        /**
         * 商品编码
         */
        @XStreamAlias("partNumber")
        private String partNumber;

        /**
         * 目录名称
         */
        @XStreamAlias("catalogName")
        private String catalogName;

        /**
         * 品牌名称
         */
        @XStreamAlias("brandName")
        private String brandName;

        /**
         * 关系
         */
        @XStreamAlias("relation")
        private String relation;

        public String getSellerNumber() {
            return sellerNumber;
        }

        public void setSellerNumber(String sellerNumber) {
            this.sellerNumber = sellerNumber;
        }

        public String getPartName() {
            return partName;
        }

        public void setPartName(String partName) {
            this.partName = partName;
        }

        public String getPartNumber() {
            return partNumber;
        }

        public void setPartNumber(String partNumber) {
            this.partNumber = partNumber;
        }

        public String getCatalogName() {
            return catalogName;
        }

        public void setCatalogName(String catalogName) {
            this.catalogName = catalogName;
        }

        public String getBrandName() {
            return brandName;
        }

        public void setBrandName(String brandName) {
            this.brandName = brandName;
        }

        public String getRelation() {
            return relation;
        }

        public void setRelation(String relation) {
            this.relation = relation;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("PartScopeMsgDetail{");
            sb.append(" sellerNumber='").append(sellerNumber).append('\'');
            sb.append(", partName='").append(partName).append('\'');
            sb.append(", partNumber='").append(partNumber).append('\'');
            sb.append(", catalogName='").append(catalogName).append('\'');
            sb.append(", brandName='").append(brandName).append('\'');
            sb.append(", relation='").append(relation).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    public String getQueryResult() {
        return queryResult;
    }

    public void setQueryResult(String queryResult) {
        this.queryResult = queryResult;
    }

    public String getFailureReasons() {
        return failureReasons;
    }

    public void setFailureReasons(String failureReasons) {
        this.failureReasons = failureReasons;
    }

    public String getCouponRulesName() {
        return couponRulesName;
    }

    public void setCouponRulesName(String couponRulesName) {
        this.couponRulesName = couponRulesName;
    }

    public String getCouponNum() {
        return couponNum;
    }

    public void setCouponNum(String couponNum) {
        this.couponNum = couponNum;
    }

    public String getUseLink() {
        return useLink;
    }

    public void setUseLink(String useLink) {
        this.useLink = useLink;
    }

    public String getCouponUseRule() {
        return couponUseRule;
    }

    public void setCouponUseRule(String couponUseRule) {
        this.couponUseRule = couponUseRule;
    }

    public String getCouponDelivery() {
        return couponDelivery;
    }

    public void setCouponDelivery(String couponDelivery) {
        this.couponDelivery = couponDelivery;
    }

    public String getCouponMentionAmount() {
        return couponMentionAmount;
    }

    public void setCouponMentionAmount(String couponMentionAmount) {
        this.couponMentionAmount = couponMentionAmount;
    }

    public String getCouponValue() {
        return couponValue;
    }

    public void setCouponValue(String couponValue) {
        this.couponValue = couponValue;
    }

    public String getRemainValue() {
        return remainValue;
    }

    public void setRemainValue(String remainValue) {
        this.remainValue = remainValue;
    }

    public String getCouponStartTime() {
        return couponStartTime;
    }

    public void setCouponStartTime(String couponStartTime) {
        this.couponStartTime = couponStartTime;
    }

    public String getCouponEndTime() {
        return couponEndTime;
    }

    public void setCouponEndTime(String couponEndTime) {
        this.couponEndTime = couponEndTime;
    }

    public String getCouponInitiator() {
        return couponInitiator;
    }

    public void setCouponInitiator(String couponInitiator) {
        this.couponInitiator = couponInitiator;
    }

    public String getStoreId() {
        return storeId;
    }

    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }

    public String getCouponStatus() {
        return couponStatus;
    }

    public void setCouponStatus(String couponStatus) {
        this.couponStatus = couponStatus;
    }

    public String getMaxLimit() {
        return maxLimit;
    }

    public void setMaxLimit(String maxLimit) {
        this.maxLimit = maxLimit;
    }

    public String getMinLimit() {
        return minLimit;
    }

    public void setMinLimit(String minLimit) {
        this.minLimit = minLimit;
    }

    public String getCouponRulesShowMsg() {
        return couponRulesShowMsg;
    }

    public void setCouponRulesShowMsg(String couponRulesShowMsg) {
        this.couponRulesShowMsg = couponRulesShowMsg;
    }

    public String getRewardsPreferential() {
        return rewardsPreferential;
    }

    public void setRewardsPreferential(String rewardsPreferential) {
        this.rewardsPreferential = rewardsPreferential;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getDynamicTime() {
        return dynamicTime;
    }

    public void setDynamicTime(String dynamicTime) {
        this.dynamicTime = dynamicTime;
    }

    public String getDynamicDistanceTimeDelay() {
        return dynamicDistanceTimeDelay;
    }

    public void setDynamicDistanceTimeDelay(String dynamicDistanceTimeDelay) {
        this.dynamicDistanceTimeDelay = dynamicDistanceTimeDelay;
    }

    public String getCouponTypeNumber() {
        return couponTypeNumber;
    }

    public void setCouponTypeNumber(String couponTypeNumber) {
        this.couponTypeNumber = couponTypeNumber;
    }

    public List<NoMarketNameDetail> getNoMarketNameList() {
        return noMarketNameList;
    }

    public void setNoMarketNameList(List<NoMarketNameDetail> noMarketNameList) {
        this.noMarketNameList = noMarketNameList;
    }

    public List<NoBusinessSignDetail> getNoBusinessSignList() {
        return noBusinessSignList;
    }

    public void setNoBusinessSignList(List<NoBusinessSignDetail> noBusinessSignList) {
        this.noBusinessSignList = noBusinessSignList;
    }

    public List<ExcludeCategoryDetail> getExcludeCategoryList() {
        return excludeCategoryList;
    }

    public void setExcludeCategoryList(List<ExcludeCategoryDetail> excludeCategoryList) {
        this.excludeCategoryList = excludeCategoryList;
    }

    public List<CouponRulesTerminalDetail> getCouponRulesTerminalList() {
        return couponRulesTerminalList;
    }

    public void setCouponRulesTerminalList(List<CouponRulesTerminalDetail> couponRulesTerminalList) {
        this.couponRulesTerminalList = couponRulesTerminalList;
    }

    public List<CityDetail> getCityList() {
        return cityList;
    }

    public void setCityList(List<CityDetail> cityList) {
        this.cityList = cityList;
    }

    public List<StoresDetail> getStoresList() {
        return storesList;
    }

    public void setStoresList(List<StoresDetail> storesList) {
        this.storesList = storesList;
    }

    public List<PartScopeMsgDetail> getPartScopeMsgList() {
        return partScopeMsgList;
    }

    public void setPartScopeMsgList(List<PartScopeMsgDetail> partScopeMsgList) {
        this.partScopeMsgList = partScopeMsgList;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("QueryCouponDetailInfoFromSPESEsbDto{");
        sb.append(" queryResult='").append(queryResult).append('\'');
        sb.append(", failureReasons='").append(failureReasons).append('\'');
        sb.append(", couponRulesName='").append(couponRulesName).append('\'');
        sb.append(", couponNum=").append(couponNum);
        sb.append(", useLink='").append(useLink).append('\'');
        sb.append(", couponUseRule=").append(couponUseRule);
        sb.append(", couponDelivery='").append(couponDelivery).append('\'');
        sb.append(", couponMentionAmount=").append(couponMentionAmount);
        sb.append(", couponValue=").append(couponValue);
        sb.append(", remainValue=").append(remainValue);
        sb.append(", couponStartTime='").append(couponStartTime).append('\'');
        sb.append(", couponEndTime='").append(couponEndTime).append('\'');
        sb.append(", couponInitiator='").append(couponInitiator).append('\'');
        sb.append(", storeId='").append(storeId).append('\'');
        sb.append(", couponStatus='").append(couponStatus).append('\'');
        sb.append(", maxLimit=").append(maxLimit);
        sb.append(", minLimit=").append(minLimit);
        sb.append(", couponRulesShowMsg='").append(couponRulesShowMsg).append('\'');
        sb.append(", rewardsPreferential='").append(rewardsPreferential).append('\'');
        sb.append(", startTime='").append(startTime).append('\'');
        sb.append(", endTime='").append(endTime).append('\'');
        sb.append(", dynamicTime=").append(dynamicTime);
        sb.append(", dynamicDistanceTimeDelay=").append(dynamicDistanceTimeDelay);
        sb.append(", couponTypeNumber='").append(couponTypeNumber).append('\'');
        sb.append(", noMarketNameList=").append(noMarketNameList);
        sb.append(", noBusinessSignList=").append(noBusinessSignList);
        sb.append(", excludeCategoryList=").append(excludeCategoryList);
        sb.append(", couponRulesTerminalList=").append(couponRulesTerminalList);
        sb.append(", cityList=").append(cityList);
        sb.append(", storesList=").append(storesList);
        sb.append(", partScopeMsgList=").append(partScopeMsgList);
        sb.append('}');
        return sb.toString();
    }
}
